package com.bjpowernode.controller;

import cn.hutool.captcha.CaptchaUtil;
import cn.hutool.captcha.ICaptcha;
import com.bjpowernode.catpcha.MyCodeGenerator;
import jakarta.servlet.http.HttpServletRequest;
import jakarta.servlet.http.HttpServletResponse;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

import java.io.IOException;

@RestController
public class CaptchaController {
    /**
     * 这个是生成验证码图片的方法，不需要跳转页面，只需要将生成的验证码图片以IO流的方式写回到浏览器即可
     */
    @RequestMapping("/common/captcha")
    public void generateCaptcha(HttpServletRequest request, HttpServletResponse response) throws IOException {
        //告诉前端，相应内容的类型是jpeg的图片
        response.setContentType("image/jpeg");
        //1.用hutool包生成验证码图片
        //5个参数分别是：图片宽度，图片高度，验证码数字个数，干扰线个数，字体大小(高度的倍数)
//        ICaptcha captcha = CaptchaUtil.createCircleCaptcha(150,30,
//                4,10,1);
        //这个MyCodeGenerator是自定义生成验证码的类，要继承hutool包的CodeGenerator接口
        //第三个参数传递的就是CodeGenerator的实现类
        ICaptcha captcha = CaptchaUtil.createCircleCaptcha(150,30,
                new MyCodeGenerator(),10);
        //2.将验证码保存到session
        request.getSession().setAttribute("captcha",captcha.getCode());
        //3.将验证码图片通过IO流写回到浏览器
        captcha.write(response.getOutputStream());
    }
}
